home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
language
/
embedded
/
mcu11
/
basic11.arc
/
BASIC11.LST
next >
Wrap
File List
|
1990-10-10
|
16KB
|
270 lines
IOPKG -- Micro Dialects, Inc. uASM-HC11 Assembler Mon, Sep 24, 1990 1:03 PM -- Page 2
6982 *
6983 *
6984 FED2 OUTBYTE EQU *
6985 FED2 7C001E INC PRINTPOS INCREMENT THE CURRENT PRINT POSITION.
6986 FED5 37 PSHB SAVE THE B-REG.
6987 FED6 3C PSHX SAVE THE X-REG.
6988 FED7 CE00B4 LDX #OUTABLE POINT TO THE OUTPUT VECTOR TABLE.
6989 FEDA D637 OUTBYTE1 LDAB DEVNUM GET THE CURRENT DEVICE NUMBER.
6990 FEDC 58 ASLB MULT BY 2.
6991 FEDD 3A ABX POINT TO THE ADDRESS OF THE OUTPUT ROUTINE.
6992 FEDE EE00 LDX 0,X GET THE ADDRESS. HAS THE VECTOR BEEN INITALIZED?
6993 FEE0 2608 BNE OUTBYTE2 YES. GO OUTPUT THE CHARACTER.
6994 FEE2 7F0037 CLR DEVNUM NO. RESET TO DEVICE #0.
6995 FEE5 8631 LDAA #UNINIERR GO REPORT AN UNINITALIZED I/O VECTOR ERROR.
6996 FEE7 7EEAEF JMP RPTRERR
6997 FEEA AD00 OUTBYTE2 JSR 0,X GO OUTPUT THE CHARACTER.
6998 FEEC 38 PULX RESTORE X.
6999 FEED 33 PULB RESTORE B.
7000 FEEE 39 RTS RETURN.
7001 *
7002 FEEF INBYTE EQU *
7003 FEEF 37 PSHB SAVE THE B-REG.
7004 FEF0 3C PSHX SAVE THE X-REG.
7005 FEF1 CE00A4 LDX #INTABLE POINT TO THE INPUT VECTOR TABLE.
7006 FEF4 20E4 BRA OUTBYTE1 GO USE THE SAME CODE AS OUTBYTE.
7007 *
7008 *
7009 0000 if *>$FF00
7011 endif
7012 *
7013 *
7014 FF00 ORG $FF00
7015 *
7016 *
7017 FF00 8D0D ACIAIN BSR ACIAINNE GO GET CHARACTER FROM ACIA, NO ECHO.
7018 * NOW, FALL THROUGH TO ACIAOUT TO ECHO CHARACTER.
7019 *
7020 *
7021 FF02 36 ACIAOUT PSHA SAVE THE CHARACTER TO OUTPUT.
7022 FF03 B69800 ACIAOUT1 LDAA ACIAST GET THE ACIA STATUS.
7023 FF06 8502 BITA #$02 IS THE XMIT DATA REGISTER EMPTY?
7024 FF08 27F9 BEQ ACIAOUT1 NO. WAIT TILL IT IS.
7025 FF0A 32 PULA YES. GET BYTE TO SEND.
7026 FF0B B79801 STAA ACIADT SEND IT.
7027 FF0E 39 RTS RETURN.
7028 *
7029 *
7030 *
7031 *
7032 *
7033 *
7034 FF0F B69800 ACIAINNE LDAA ACIAST GET THE ACIA STATUS.
7035 FF12 8501 BITA #$01 HAS A CHARACTER BEEN RECIEVED?
7036 FF14 27F9 BEQ ACIAINNE NO. WAIT TILL WE HAVE ONE.
7037 FF16 B69801 LDAA ACIADT YES. GET THE CHARACTER.
7038 FF19 39 RTS RETURN.
7039 *
7040 FF1A ACIASTAT EQU *
7041 FF1A 36 PSHA SAVE THE A-REG.
7042 FF1B B69800 LDAA ACIAST GET THE ACIA STATUS.
7043 FF1E 8501 BITA #$01 CHECK FOR A CHARACTER.
7044 FF20 32 PULA RESTORE A.
7045 FF21 39 RTS RETURN.
7046 *
7047 *
IOPKG -- Micro Dialects, Inc. uASM-HC11 Assembler Mon, Sep 24, 1990 1:03 PM -- Page 3
7048 FF22 SCIIN EQU *
7049 FF22 3C PSHX Save the index register.
7050 FF23 DE61 LDX IOBaseV
7051 FF25 A62E SCIIN1 LDAA SCSR,X GET SCI STATUS.
7052 FF27 8420 ANDA #$20 HAS A CHARACTER BEEN RECIEVED?
7053 FF29 27FA BEQ SCIIN1 NO. WAIT FOR CHARACTER TO BE RECIEVED.
7054 FF2B A62F LDAA SCDR,X GET THE CHARACTER.
7055 FF2D 38 PULX Restore X.
7056 FF2E 39 RTS RETURN.
7057 *
7058 *
7059 FF2F SCIOUT EQU *
7060 FF2F 3C PSHX Save the index register.
7061 FF30 DE61 LDX IOBaseV
7062 FF32 36 PSHA SAVE THE CHARACTER TO SEND.
7063 FF33 A62E SCIOUT1 LDAA SCSR,X GET THE SCI STATUS.
7064 FF35 8580 BITA #$80 HAS THE LAST CHARACTER BEEN SHIFTED OUT?
7065 FF37 27FA BEQ SCIOUT1 NO. WAIT TILL IT HAS.
7066 FF39 32 PULA RESTORE CHARACTER TO SEND.
7067 FF3A A72F STAA SCDR,X SEND THE CHARACTER.
7068 FF3C 38 PULX Restore X.
7069 FF3D 39 RTS RETURN.
7070 *
7071 *
7072 FF3E SCISTAT EQU *
7073 FF3E 3C PSHX Save the index register.
7074 FF3F DE61 LDX IOBaseV
7075 FF41 36 PSHA SAVE THE A-REG.
7076 FF42 A62E LDAA SCSR,X GET THE SCI STATUS.
7077 FF44 8520 BITA #$20 CHECK TO SEE IF A CHARACTER HAS BEEN RECIEVED.
7078 FF46 32 PULA RESTORE STATUS.
7079 FF47 38 PULX Restore X.
7080 FF48 39 RTS RETURN W/ STATUS.
7081 *
7082 *
7083 FF49 IODevInit:
7084 FF49 8D2A BSR InitACIA
7085 FF4B 8D11 BSR InitSCI
7086 FF4D 867E LDAA #JMPOP
7087 FF4F 979E STAA CONSTAT INITIALIZE THE CONSOLE STATUS VECTOR.
7088 FF51 97A1 STAA INCONNE INITIALIZE THE "INPUT FROM CONSOLE NO ECHO VECT.
7089 FF53 CCFF1A LDD #ACIASTAT CONSOLE IS INITIALLY THE ACIA.
7090 FF56 DD9F STD CONSTAT+1
7091 FF58 CCFF0F LDD #ACIAINNE GET BYTE FROM ACIA, DON'T ECHO IT.
7092 FF5B DDA2 STD INCONNE+1
7093 FF5D 39 RTS
7094 *
7095 *
7096 FF5E INITSCI EQU *
7097 FF5E 3C PSHX Save the index register.
7098 FF5F DE61 LDX IOBaseV
7099 FF61 8630 LDAA #$30 SET BAUD RATE TO 9600.
7100 FF63 A72B STAA BAUD,X
7101 FF65 6F2C CLR SCCR1,X SET FOR 8 BIT OPERATION, DISABLE WAKEUP.
7102 FF67 860C LDAA #$0C ENABLE THE TRANSMITER & RECEIVER.
7103 FF69 A72D STAA SCCR2,X
7104 FF6B 8611 LDAA #$11 GET THE XON CHARACTER (CONTROL-Q).
7105 FF6D 9743 STAA XONCH INITALIZE THE XON REGISTER.
7106 FF6F 8613 LDAA #$13 GET THE XOFF CHARACTER (CONTROL-S).
7107 FF71 9744 STAA XOFFCH INITALIZE THE XOFF CHARACTER.
7108 FF73 38 PULX
7109 FF74 39 RTS RETURN.
7110 *
7111 *
7112 FF75 8613 INITACIA LDAA #$13 VALUE TO RESET THE ACIA.
IOPKG -- Micro Dialects, Inc. uASM-HC11 Assembler Mon, Sep 24, 1990 1:03 PM -- Page 4
7113 FF77 B79800 STAA ACIAST RESET IT.
7114 FF7A 8656 LDAA #$56 SET /64, RTS=HI, 8-DATA/1 STOP
7115 FF7C B79800 STAA ACIAST
7116 FF7F 39 RTS RETURN.
7117 *
7118 *
7119 *
7120 FF80 PROUT EQU * SEND A CHARACTER TO THE PRINTER.
7121 FF80 8DBC BSR SCISTAT WAS AN "X-OFF" RECIEVED?
7122 FF82 270E BEQ PROUT1 NO. GO SEND THE CHARACTER.
7123 FF84 36 PSHA SAVE THE CHARACTER TO SEND.
7124 FF85 8D9B BSR SCIIN YES. GO RESET THE SCI RECEIVER STATUS.
7125 FF87 9144 CMPA XOFFCH WAS IT AN XOFF?
7126 FF89 2606 BNE PROUT2 NO. SO GO SEND THE CHARACTER.
7127 FF8B 8D95 PROUT3 BSR SCIIN GO WAIT FOR AN "X-ON" CHARACTER.
7128 FF8D 9143 CMPA XONCH IS IT AN X-ON CHARACTER?
7129 FF8F 26FA BNE PROUT3 NO. GO WAIT FOR AN X-ON CHARACTER.
7130 FF91 32 PROUT2 PULA GET THE CHARACTER TO SEND.
7131 FF92 209B PROUT1 BRA SCIOUT SEND THE CHARACTER TO THE PRINTER & RETURN.
7132 *
7133 *
7134 Include 'VECTORS.Asm'
7135 ttl Config/Reset/Interrupt Vectors
Config/Reset/Interrupt Vectors -- Micro Dialects, Inc. uASM-HC11 Assembler Mon, Sep 24, 1990 1:03 PM -- Page 5
7137 0000 if *>$ffa0
7139 endif
7140 *
7141 *
7142 *
7143 FFA0 org $ffa0
7144 FFA0 FF00 IOVects fdb ACIAIN
7145 FFA2 FF22 fdb SCIIN
7146 FFA4 0000 fdb 0
7147 FFA6 0000 fdb 0
7148 FFA8 0000 fdb 0
7149 FFAA 0000 fdb 0
7150 FFAC 0000 fdb 0
7151 FFAE 0000 fdb 0
7152 FFB0 FF02 fdb ACIAOUT
7153 FFB2 FF80 fdb PROUT
7154 FFB4 0000 fdb 0
7155 FFB6 0000 fdb 0
7156 FFB8 0000 fdb 0
7157 FFBA 0000 fdb 0
7158 FFBC 0000 fdb 0
7159 FFBE 0000 fdb 0
7160 *
7161 *
7162 FFC0 org $ffc0
7163 FFC0 C000 RAMStart fdb $c000 starting address of system RAM.
7164 FFC2 2000 RAMSize fdb $2000 size of BASIC11 RAM Buffer.
7165 FFC4 6000 EEStart fdb $6000 starting address of program storage EEPROM
7166 FFC6 2000 EESize fdb $2000 size of the program storage EEPROM
7167 FFC8 1000 IOBase fdb $1000 Base Address of the I/O Registers
7168 FFCA F424 TimeVal fdb 62500 value used for generating 'Time' Interrupt
7169 FFCC FF49 UserInit fdb IODevInit Used to initialize console/other hardware.
7170 FFCE 4000 DFLOPADR fdb $4000 ; Address of flip-flop used to connect the HC11 SCI
7171 ; to the host port connector.
7172 ;
7173 ;
7174
7175 FFD6 ORG ROMBEG+ROMSIZE-(21*2) START OF VECTOR TABLE.
7176 FFD6 00C4 FDB SCISS SCI SERIAL SYSTEM
7177 FFD8 00C7 FDB SPITC SPI TRANSFER COMPLETE
7178 FFDA 00CA FDB PACCIE PULSE ACCUMULATOR INPUT EDGE
7179 FFDC 00CD FDB PACCOVF PULSE ACCUMULATOR OVERFLOW
7180 FFDE 00D0 FDB TIMEROVF TIMER OVERFLOW
7181 FFE0 00D3 FDB TOC5 TIMER OUTPUT COMPARE 5
7182 FFE2 00D6 FDB TOC4 TIMER OUTPUT COMPARE 4
7183 FFE4 00D9 FDB TOC3 TIMER OUTPUT COMPARE 3
7184 FFE6 00DC FDB TOC2 TIMER OUTPUT COMPARE 2
7185 FFE8 00DF FDB TOC1 TIMER OUTPUT COMPARE 1
7186 FFEA 00E2 FDB TIC3 TIMER INPUT CAPTURE 3
7187 FFEC 00E5 FDB TIC2 TIMER INPUT CAPTURE 2
7188 FFEE 00E8 FDB TIC1 TIMER INPUT CAPTURE 1
7189 FFF0 00EB FDB REALTIMI REAL TIME INTERRUPT
7190 FFF2 00EE FDB IRQI IRQ INTERRUPT
7191 FFF4 00F1 FDB XIRQ XIRQ INTERRUPT
7192 FFF6 00F4 FDB SWII SOFTWARE INTERRUPT
7193 FFF8 00F7 FDB ILLOP ILLEGAL OPCODE TRAP
7194 FFFA 00FA FDB COP WATCH DOG FAIL
7195 FFFC 00FD FDB CMF CLOCK MONITOR FAIL
7196 FFFE ED77 FDB POWERUP RESET
7197 *
7198 *
7199 *